Platform Explorer / Nuxeo Platform 2023.8

Contribution org.nuxeo.platform.admin.layoutContrib--layouts

This contribution is part of XML component org.nuxeo.platform.admin.layoutContrib inside nuxeo-admin-center-jsf-2023.8.13.jar /OSGI-INF/layout-contrib.xml

Extension Point

Extension point layouts of component WebLayoutManager.

Registration Order

0
The registration order represents the order in which this contribution was registered on its target extention point. This will impact the override/merge behaviour when it is implemented on the target service, and is useful for proper customization of existing contributions.
You can influence this order by adding "require" tags in the containing component declaration, to make sure it is resolved after another component (see "Resolution Order" on components).

Contributed Items

  • <layout name="fullauditsearch">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>startDate</widget>
              <widget>endDate</widget>
            </row>
            <row>
              <widget>eventId</widget>
              <widget>eventCategory</widget>
            </row>
            <row>
              <widget>userId</widget>
            </row>
          </rows>
          <widget name="startDate" type="datetime">
            <labels>
              <label mode="any">label.audit.startDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:startDate</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="endDate" type="datetime">
            <labels>
              <label mode="any">label.audit.endDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:endDate</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="eventId" type="selectManyDirectory">
            <labels>
              <label mode="any">label.performedAction</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:eventIds</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">eventTypes</property>
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventCategory" type="selectOneDirectory">
            <labels>
              <label mode="any">label.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:eventCategory</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">eventCategories</property>
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="userId" type="singleUserSuggestion">
            <labels>
              <label mode="any">label.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:principalName</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
            <properties mode="any">
              <property name="userSuggestionSearchType">USER_TYPE</property>
            </properties>
          </widget>
        </layout>
  • <layout name="event_listing">
          <templates>
            <template mode="any">/layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">/layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">eventId</property>
              </properties>
              <widget>eventId</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.eventDate</property>
              </properties>
              <widget>eventDate</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.principalName</property>
              </properties>
              <widget>username</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.category</property>
              </properties>
              <widget>eventCategory</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventDoc</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventComment</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventLC</widget>
            </column>
          </columns>
          <widget name="eventId" type="text">
            <labels>
              <label mode="any">label.performedAction</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.eventId</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventDate" type="datetime">
            <labels>
              <label mode="any">label.date</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.eventDate</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">#{nxu:basicDateAndTimeFormatter()}</property>
              <property name="timezone">#{timeZone}</property>
            </properties>
            <properties mode="csv">
              <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
              <property name="csv_forceType">date</property>
            </properties>
          </widget>
          <widget name="username" type="text">
            <labels>
              <label mode="any">label.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.principalName</field>
            </fields>
          </widget>
          <widget name="eventCategory" type="text">
            <labels>
              <label mode="any">label.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data:category</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventDoc" type="template">
            <labels>
              <label mode="any">label.document</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/auditdoc_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="eventComment" type="text">
            <labels>
              <label mode="any">label.comment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.comment</field>
            </fields>
          </widget>
          <widget name="eventLC" type="text">
            <labels>
              <label mode="any">label.lifecycle</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.docLifeCycle</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_setup_main">
          <templates>
            <template mode="any">
              /incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.mainSetup</property>
          </properties>
          <rows>
            <row>
              <widget>url</widget>
            </row>
            <row>
              <widget>product.name</widget>
            </row>
            <row>
              <widget>product.version</widget>
            </row>
            <row>
              <widget>bind.address</widget>
            </row>
            <row>
              <widget>nuxeo.conf</widget>
            </row>
            <row>
              <widget>data.dir</widget>
            </row>
            <row>
              <widget>log.dir</widget>
            </row>
            <row>
              <widget>org.nuxeo.dev</widget>
            </row>
            <row>
              <widget>dbtemplate</widget>
            </row>
            <row>
              <widget>database_ajax_decorator</widget>
            </row>
            <row>
              <widget>chooseDirectoryType</widget>
            </row>
            <row>
              <widget>ldap_ajax_decorator</widget>
            </row>
          </rows>
          <widget name="url" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.url</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.url']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="product.name" type="text">
            <labels>
              <label mode="any">label.setup.org.nuxeo.ecm.product.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.ecm.product.name']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="product.version" type="text">
            <labels>
              <label mode="any">label.setup.org.nuxeo.ecm.product.version</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.ecm.product.version']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="bind.address" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.bind.address</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.bind.address']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="nuxeo.conf" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.conf</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.conf']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="data.dir" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.data.dir</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.data.dir']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="log.dir" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.log.dir</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.log.dir']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="org.nuxeo.dev" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.org.nuxeo.dev</label>
            </labels>
            <helpLabels>
              <label mode="any">label.setup.nuxeo.org.nuxeo.dev.help</label>
            </helpLabels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.dev']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/dev_mode_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="dbtemplate" type="template">
            <labels>
              <label mode="any">label.setup.database.templates</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.dbtemplate']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_chooser_widget_template.xhtml
              </property>
              <property name="reRender">database_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="database_ajax_decorator" type="template">
            <handlingLabels>true</handlingLabels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_ajax_panel.xhtml
              </property>
              <property name="ajaxPanelId">database_ajaxPanel</property>
              <!-- use a 'rendered' property instead of playing with the
                subwidget mode otherwise proxy selection misbehaves after
                first non-default database
                selection -->
              <property name="rendered">
                #{value['nuxeo.dbtemplate']!='default' and value['nuxeo.dbtemplate']!='mongodb'}
              </property>
            </properties>
            <subWidgets>
              <widget name="database" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_database</property>
                </properties>
              </widget>
            </subWidgets>
          </widget>
          <widget name="chooseDirectoryType" type="template">
            <labels>
              <label mode="any">label.setup.directory.type</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{setupWizardAction.directoryType}</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_chooser_widget_template.xhtml
              </property>
              <property name="reRender">ldap_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="ldap_ajax_decorator" type="template">
            <handlingLabels>true</handlingLabels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_ajax_panel.xhtml
              </property>
              <property name="ajaxPanelId">ldap_ajaxPanel</property>
              <property name="rendered">
                #{setupWizardAction.directoryType != 'default'}
              </property>
            </properties>
            <subWidgets>
              <widget name="directories" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories</property>
                </properties>
              </widget>
              <widget name="directories_group" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories_group</property>
                </properties>
              </widget>
              <widget name="directories_extra" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories_extra</property>
                </properties>
              </widget>
            </subWidgets>
          </widget>
    
        </layout>
  • <layout name="admin_setup_database">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.dataBase</property>
          </properties>
          <rows>
            <row>
              <widget>dbName</widget>
            </row>
            <row>
              <widget>dbUser</widget>
            </row>
            <row>
              <widget>dbPwd</widget>
            </row>
            <row>
              <widget>dbHost</widget>
            </row>
            <row>
              <widget>dbPort</widget>
            </row>
            <row>
              <widget>dbMinPoolSize</widget>
            </row>
            <row>
              <widget>dbMaxPoolSize</widget>
            </row>
            <row>
              <widget>vcsMinPoolSize</widget>
            </row>
            <row>
              <widget>vcsMaxPoolSize</widget>
            </row>
            <row>
              <widget>checkDatabaseParameters</widget>
            </row>
          </rows>
          <widget name="dbName" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.name']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbUser" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.user']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbPwd" type="secret">********<labels>
              <label mode="any">label.setup.nuxeo.db.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.password']</field>
            </fields>
          </widget>
          <widget name="dbHost" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.host']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbPort" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
            </properties>
          </widget>
          <widget name="dbMinPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.min-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.min-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="dbMaxPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.max-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.max-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="vcsMinPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.vcs.min-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.vcs.min-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="vcsMaxPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.vcs.max-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.vcs.max-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="checkDatabaseParameters" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_check_parameters_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_setup_directories">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.directories</property>
          </properties>
          <rows>
            <row>
              <widget>ldapStorage</widget>
            </row>
            <row>
              <widget>ldapUrl</widget>
              <!-- <widget>checkNetwork</widget> -->
            </row>
            <row>
              <widget>ldapBindDn</widget>
            </row>
            <row>
              <widget>ldapBindPassword</widget>
              <widget>checkAuth</widget>
            </row>
            <row>
              <widget>userLdapSearchBaseDn</widget>
            </row>
            <row>
              <widget>userLdapSearchClass</widget>
            </row>
            <row>
              <widget>userLdapSearchFilter</widget>
            </row>
            <row>
              <widget>userLdapSearchScope</widget>
            </row>
            <row>
              <widget>userLdapReadonly</widget>
            </row>
            <row>
              <widget>mappingUserRdn</widget>
            </row>
            <row>
              <widget>mappingUsername</widget>
            </row>
            <row>
              <widget>mappingPassword</widget>
            </row>
            <row>
              <widget>mappingFirstname</widget>
            </row>
            <row>
              <widget>mappingLastname</widget>
            </row>
            <row>
              <widget>mappingEmail</widget>
            </row>
            <row>
              <widget>mappingCompany</widget>
            </row>
          </rows>
          <widget name="ldapStorage" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.users.storage</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.group.storage']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ldap_storage_widget_template.xhtml
              </property>
              <property name="reRender">ldap_group_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="multiStorage" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.users.storage</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.group.storage']</field>
            </fields>
            <selectOptions>
              <option itemLabel="Multidirectory for users and groups" itemValue="multiUserGroup"/>
              <option itemLabel="Multidirectory for users and SQL groups" itemValue="multiUserSqlGroup"/>
              <option itemLabel="LDAP users and multidirectory for groups" itemValue="ldapUserMultiGroup"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.directoryType == 'multi'}
              </property>
            </properties>
          </widget>
          <widget name="ldapUrl" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.url</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.url']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="ldapBindDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.binddn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.binddn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="ldapBindPassword" type="secret">********<labels>
              <label mode="any">label.setup.nuxeo.ldap.bindpassword</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.bindpassword']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="redisplay">true</property>
            </properties>
          </widget>
          <widget name="ldapRetries" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.retries</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.retries']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">2</property>
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchBaseDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchbasedn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchBaseDn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchClass" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchclass</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchClass']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchFilter" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchfilter</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchFilter']</field>
            </fields>
          </widget>
          <widget name="userLdapSearchScope" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchscope</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchScope']</field>
            </fields>
            <selectOptions>
              <option itemLabel="onelevel" itemValue="onelevel"/>
              <option itemLabel="subtree" itemValue="subtree"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="size">1</property>
            </properties>
          </widget>
          <widget name="userLdapReadonly" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.readonly</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.readonly']</field>
            </fields>
          </widget>
          <widget name="mappingUserRdn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.rdn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.rdn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingUsername" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.username']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingPassword" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.password']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingFirstname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.firstname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.firstname']</field>
            </fields>
          </widget>
          <widget name="mappingLastname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.lastname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.lastname']</field>
            </fields>
          </widget>
          <widget name="mappingEmail" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.email</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.email']</field>
            </fields>
          </widget>
          <widget name="mappingCompany" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.company</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.company']</field>
            </fields>
          </widget>
          <widget name="checkNetwork" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <widgetModes>
              <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_check_network_parameters_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="checkAuth" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <widgetModes>
              <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_check_auth_parameters_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_setup_directories_group">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="ajaxPanelId">ldap_group_ajaxPanel</property>
            <property name="rendered">
              #{setupWizardAction.needGroupConfiguration}
            </property>
          </properties>
          <rows>
            <row>
              <widget>groupLdapSearchBaseDn</widget>
            </row>
            <row>
              <widget>groupLdapSearchFilter</widget>
            </row>
            <row>
              <widget>groupLdapSearchScope</widget>
            </row>
            <row>
              <widget>groupLdapReadonly</widget>
            </row>
            <row>
              <widget>mappingGroupRdn</widget>
            </row>
            <row>
              <widget>mappingGroupname</widget>
            </row>
            <row>
              <widget>mappingGrouplabel</widget>
            </row>
            <row>
              <widget>mappingStaticMembers</widget>
            </row>
            <row>
              <widget>mappingDynamicMembers</widget>
            </row>
          </rows>
          <widget name="groupLdapSearchBaseDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchbasedn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchBaseDn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="groupLdapSearchFilter" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchfilter</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchFilter']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="groupLdapSearchScope" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchscope</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchScope']</field>
            </fields>
            <selectOptions>
              <option itemLabel="onelevel" itemValue="onelevel"/>
              <option itemLabel="subtree" itemValue="subtree"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="size">1</property>
            </properties>
          </widget>
          <widget name="groupLdapReadonly" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.readonly</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.readonly']</field>
            </fields>
          </widget>
          <widget name="mappingGroupRdn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.rdn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.rdn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingGroupname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.name']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingGrouplabel" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.label</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.label']</field>
            </fields>
          </widget>
          <widget name="mappingStaticMembers" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.static</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.members.staticAttributeId']</field>
            </fields>
          </widget>
          <widget name="mappingDynamicMembers" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.dynamic</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.members.dynamicAttributeId']</field>
            </fields>
          </widget>
        </layout>
  • <layout name="admin_setup_directories_extra">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label"/>
          </properties>
          <rows>
            <row>
              <widget>defaultAdministrator</widget>
            </row>
            <row>
              <widget>defaultMembersGroup</widget>
            </row>
            <row>
              <widget>anonymousUser</widget>
            </row>
            <row>
              <widget>emergencyUser</widget>
            </row>
            <row>
              <widget>emergencyUsername</widget>
            </row>
            <row>
              <widget>emergencyPassword</widget>
            </row>
            <row>
              <widget>emergencyFirstname</widget>
            </row>
            <row>
              <widget>emergencyLastname</widget>
            </row>
          </rows>
          <widget name="defaultAdministrator" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.admin</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.defaultAdministratorId']</field>
            </fields>
          </widget>
          <widget name="defaultMembersGroup" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.membersGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.defaultMembersGroup']</field>
            </fields>
          </widget>
          <widget name="anonymousUser" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.anonymous.enable</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.anonymous.enable']</field>
            </fields>
          </widget>
          <widget name="emergencyUser" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.enable</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.enable']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
              </property>
              <property name="reRender">ldap_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="emergencyUsername" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.username']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyPassword" type="secret">********<labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.password']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="redisplay">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyFirstname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.firstname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.firstname']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyLastname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.lastname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.lastname']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_choose_proxy">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.httpProxy</property>
            <property name="ajaxPanelId">admin_choose_proxy_ajaxPanel</property>
          </properties>
          <rows>
            <row>
              <widget>chooseProxy</widget>
            </row>
            <row>
              <widget>proxy.host</widget>
            </row>
            <row>
              <widget>proxy.port</widget>
            </row>
            <row>
              <widget>proxy.login</widget>
            </row>
            <row>
              <widget>proxy.password</widget>
            </row>
          </rows>
          <widget name="chooseProxy" type="template">
            <labels>
              <label mode="any">label.setup.httpProxy.type</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{setupWizardAction.proxyType}</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/proxy_chooser_widget_template.xhtml
              </property>
              <property name="reRender">admin_choose_proxy_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="proxy.host" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.host']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <!-- use a 'rendered' property instead of playing with the
                subwidget mode otherwise smtp auth misbehaves after
                first non-default proxy type selection -->
              <property name="rendered">
                #{setupWizardAction.proxyType != 'none'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.port" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType != 'none'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.login" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.login</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.login']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType ==
                'authenticated'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.password" type="secret">********<labels>
              <label mode="any">label.setup.nuxeo.http.proxy.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.password']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType ==
                'authenticated'}
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_setup_mail">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.email</property>
            <property name="ajaxPanelId">admin_setup_mail_ajaxPanel</property>
          </properties>
          <rows>
            <row>
              <widget>eMailSubjectPrefix</widget>
            </row>
            <row>
              <widget>mailservice.user</widget>
            </row>
            <row>
              <widget>mailservice.password</widget>
            </row>
            <row>
              <widget>mail.store.protocol</widget>
            </row>
            <row>
              <widget>mail.transport.protocol</widget>
            </row>
            <row>
              <widget>mail.store.host</widget>
            </row>
            <row>
              <widget>mail.store.port</widget>
            </row>
            <row>
              <widget>mail.store.user</widget>
            </row>
            <row>
              <widget>mail.store.password</widget>
            </row>
            <row>
              <widget>mail.debug</widget>
            </row>
            <row>
              <widget>mail.transport.host</widget>
            </row>
            <row>
              <widget>mail.transport.port</widget>
            </row>
            <row>
              <widget>mail.transport.auth</widget>
            </row>
            <row>
              <widget>mail.transport.user</widget>
            </row>
            <row>
              <widget>mail.transport.password</widget>
            </row>
            <row>
              <widget>mail.from</widget>
            </row>
            <row>
              <widget>mail.transport.usetls</widget>
            </row>
            <row>
              <widget>mail.user</widget>
            </row>
          </rows>
          <widget name="eMailSubjectPrefix" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.notification.eMailSubjectPrefix
              </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.notification.eMailSubjectPrefix']</field>
            </fields>
          </widget>
          <widget name="mailservice.user" type="text">
            <labels>
              <label mode="any">label.setup.mailservice.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mailservice.user']</field>
            </fields>
          </widget>
          <widget name="mailservice.password" type="secret">********<labels>
              <label mode="any">label.setup.mailservice.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mailservice.password']</field>
            </fields>
          </widget>
          <widget name="mail.store.protocol" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.protocol</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.protocol']</field>
            </fields>
          </widget>
          <widget name="mail.transport.protocol" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.protocol</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.protocol']</field>
            </fields>
          </widget>
          <widget name="mail.store.host" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.host']</field>
            </fields>
          </widget>
          <widget name="mail.store.port" type="int">
            <labels>
              <label mode="any">label.setup.mail.store.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.store.user" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.user']</field>
            </fields>
            <properties mode="edit">
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.store.password" type="secret">********<labels>
              <label mode="any">label.setup.mail.store.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.password']</field>
            </fields>
            <properties mode="edit">
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.debug" type="checkbox">
            <labels>
              <label mode="any">label.setup.mail.debug</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.debug']</field>
            </fields>
          </widget>
          <widget name="mail.transport.host" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.host']</field>
            </fields>
            <properties mode="edit">
            </properties>
          </widget>
          <widget name="mail.transport.port" type="int">
            <labels>
              <label mode="any">label.setup.mail.transport.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
            </properties>
          </widget>
          <widget name="mail.transport.auth" type="template">
            <labels>
              <label mode="any">label.setup.mail.transport.auth</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.auth']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
              </property>
              <property name="reRender">admin_setup_mail_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="mail.transport.user" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.user']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['mail.transport.auth'] == true}
              </property>
            </properties>
          </widget>
          <widget name="mail.transport.password" type="secret">********<labels>
              <label mode="any">label.setup.mail.transport.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.password']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['mail.transport.auth'] == true}
              </property>
            </properties>
          </widget>
          <widget name="mail.from" type="text">
            <labels>
              <label mode="any">label.setup.mail.from</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.from']</field>
            </fields>
          </widget>
          <widget name="mail.transport.usetls" type="checkbox">
            <labels>
              <label mode="any">label.setup.mail.transport.usetls</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.usetls']</field>
            </fields>
          </widget>
          <widget name="mail.user" type="text">
            <labels>
              <label mode="any">label.setup.mail.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.user']</field>
            </fields>
          </widget>
        </layout>
  • <layout name="admin_setup_custom_properties">
          <templates>
            <template mode="any">
              /incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.custom</property>
          </properties>
        </layout>
  • <layout name="permissions_search_filter">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>username</widget>
            </row>
            <row>
              <widget>creator</widget>
            </row>
            <row>
              <widget>location</widget>
            </row>
            <row>
              <widget>permission</widget>
            </row>
            <row>
              <widget>date_range</widget>
            </row>
            <row>
              <widget>status</widget>
            </row>
            <row>
              <widget>aclName</widget>
            </row>
          </rows>
          <widget name="username" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.permissions.userGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_username</field>
            </fields>
          </widget>
          <widget name="creator" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.permissions.grantedBy</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_creator</field>
            </fields>
            <properties mode="any">
              <property name="userSuggestionSearchType">USER_TYPE</property>
            </properties>
          </widget>
          <widget name="location" type="multipleDocumentsSuggestion">
            <labels>
              <label mode="any">label.search.locationSearch</label>
            </labels>
            <fields>
              <field>rs:ecm_ancestorIds</field>
            </fields>
            <translated>true</translated>
            <properties mode="any">
              <property name="documentSuggestion_pageProviderName">
                permissions_search_folders
              </property>
            </properties>
          </widget>
          <widget name="permission" type="selectManyListbox">
            <labels>
              <label mode="any">label.permissions.right</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_permission</field>
            </fields>
            <selectOptions>
              <options itemLabel="#{item.label}" itemValue="#{item.value}" value="#{securityActions.getUserVisiblePermissionSelectItems('')}" var="item"/>
            </selectOptions>
          </widget>
          <widget name="date_range" type="datetimeRange">
            <labels>
              <label mode="any">label.permissions.timeFrame</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_begin</field>
              <field>rs:ace_end</field>
            </fields>
            <properties widgetMode="edit">
              <property name="styleClass">dataInputTextDate</property>
              <property name="format">#{nxu:basicDateAndTimeFormatter()}</property>
            </properties>
          </widget>
          <widget name="status" type="template">
            <labels>
              <label mode="any">label.permissions.ace.status</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{adminPermissionsActions.selectedACEStatus}</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/ace_status_widget.xhtml
              </property>
            </properties>
          </widget>
          <widget name="aclName" type="text">
            <labels>
              <label mode="any">label.permissions.search.aclName</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_acl_name</field>
            </fields>
          </widget>
        </layout>
  • <layout name="permissions_purge_filter">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>username</widget>
            </row>
            <row>
              <widget>location</widget>
            </row>
          </rows>
          <widget name="username" type="multipleUsersSuggestion">
            <labels>
              <label mode="any">label.permissions.userGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>rs:ace_username</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="location" type="multipleDocumentsSuggestion">
            <labels>
              <label mode="any">label.search.locationSearch</label>
            </labels>
            <fields>
              <field>rs:ecm_ancestorIds</field>
            </fields>
            <translated>true</translated>
            <properties mode="any">
              <property name="documentSuggestion_pageProviderName">
                permissions_search_folders
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="permissions_search_listing">
          <templates>
            <template mode="any">/layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">/layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">dc:title</property>
              </properties>
              <widget>document_title</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/principal</property>
              </properties>
              <widget>ace_username</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/permission</property>
              </properties>
              <widget>ace_permission</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/creator</property>
              </properties>
              <widget>ace_creator</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/begin</property>
              </properties>
              <widget>ace_begin</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/end</property>
              </properties>
              <widget>ace_end</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">ecm:acl/*1/status</property>
              </properties>
              <widget>ace_status</widget>
            </column>
          </columns>
          <widget name="document_title" type="listing_id_title_link">
            <labels>
              <label mode="any">label.dublincore.title</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:uuid"]</field>
              <field>#{navigationContext.currentServerLocation.name}</field>
              <field>data["dc:title"]</field>
            </fields>
          </widget>
          <widget name="ace_permission" type="text">
            <labels>
              <label mode="any">label.permissions.right</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{messages[securityActions.getLabel(layoutValue.data["ecm:acl/*1/permission"])]}</field>
            </fields>
          </widget>
          <widget name="ace_username" type="singleUserSuggestion">
            <labels>
              <label mode="any">label.permissions.userGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/principal"]</field>
            </fields>
          </widget>
          <widget name="ace_creator" type="text">
            <labels>
              <label mode="any">label.permissions.grantedBy</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/creator"]</field>
            </fields>
          </widget>
          <widget name="ace_begin" type="datetime">
            <labels>
              <label mode="any">label.permissions.from</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/begin"].time</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">#{nxu:basicDateFormatter()}</property>
            </properties>
            <properties mode="csv">
              <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
              <property name="csv_forceType">date</property>
            </properties>
          </widget>
          <widget name="ace_end" type="datetime">
            <labels>
              <label mode="any">label.permissions.to</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/end"].time</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">#{nxu:basicDateFormatter()}</property>
            </properties>
            <properties mode="csv">
              <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
              <property name="csv_forceType">date</property>
            </properties>
          </widget>
          <widget name="ace_status" type="template">
            <labels>
              <label mode="any">label.permissions.ace.status</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data["ecm:acl/*1/status"]</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/ace_status_widget.xhtml
              </property>
            </properties>
          </widget>
        </layout>

XML Source

<extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">

    <layout name="fullauditsearch">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>startDate</widget>
          <widget>endDate</widget>
        </row>
        <row>
          <widget>eventId</widget>
          <widget>eventCategory</widget>
        </row>
        <row>
          <widget>userId</widget>
        </row>
      </rows>
      <widget name="startDate" type="datetime">
        <labels>
          <label mode="any">label.audit.startDate</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:startDate</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="endDate" type="datetime">
        <labels>
          <label mode="any">label.audit.endDate</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:endDate</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="eventId" type="selectManyDirectory">
        <labels>
          <label mode="any">label.performedAction</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:eventIds</field>
        </fields>
        <properties mode="any">
          <property name="directoryName">eventTypes</property>
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventCategory" type="selectOneDirectory">
        <labels>
          <label mode="any">label.category</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:eventCategory</field>
        </fields>
        <properties mode="any">
          <property name="directoryName">eventCategories</property>
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="userId" type="singleUserSuggestion">
        <labels>
          <label mode="any">label.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:principalName</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
        <properties mode="any">
          <property name="userSuggestionSearchType">USER_TYPE</property>
        </properties>
      </widget>
    </layout>

    <!-- TODO: define global widgets to be shared with event logs displayed in document
      tabs -->
    <layout name="event_listing">
      <templates>
        <template mode="any">/layouts/layout_listing_ajax_template.xhtml
        </template>
        <template mode="csv">/layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">eventId</property>
          </properties>
          <widget>eventId</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.eventDate</property>
          </properties>
          <widget>eventDate</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.principalName</property>
          </properties>
          <widget>username</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.category</property>
          </properties>
          <widget>eventCategory</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventDoc</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventComment</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventLC</widget>
        </column>
      </columns>
      <widget name="eventId" type="text">
        <labels>
          <label mode="any">label.performedAction</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.eventId</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventDate" type="datetime">
        <labels>
          <label mode="any">label.date</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.eventDate</field>
        </fields>
        <properties widgetMode="any">
          <property name="pattern">#{nxu:basicDateAndTimeFormatter()}</property>
          <property name="timezone">#{timeZone}</property>
        </properties>
        <properties mode="csv">
          <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
          <property name="csv_forceType">date</property>
        </properties>
      </widget>
      <widget name="username" type="text">
        <labels>
          <label mode="any">label.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.principalName</field>
        </fields>
      </widget>
      <widget name="eventCategory" type="text">
        <labels>
          <label mode="any">label.category</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data:category</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventDoc" type="template">
        <labels>
          <label mode="any">label.document</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /widgets/auditdoc_widget_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="eventComment" type="text">
        <labels>
          <label mode="any">label.comment</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.comment</field>
        </fields>
      </widget>
      <widget name="eventLC" type="text">
        <labels>
          <label mode="any">label.lifecycle</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.docLifeCycle</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
    </layout>

    <!-- TODO: debug/dev mode -->
    <layout name="admin_setup_main">
      <templates>
        <template mode="any">
          /incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.mainSetup</property>
      </properties>
      <rows>
        <row>
          <widget>url</widget>
        </row>
        <row>
          <widget>product.name</widget>
        </row>
        <row>
          <widget>product.version</widget>
        </row>
        <row>
          <widget>bind.address</widget>
        </row>
        <row>
          <widget>nuxeo.conf</widget>
        </row>
        <row>
          <widget>data.dir</widget>
        </row>
        <row>
          <widget>log.dir</widget>
        </row>
        <row>
          <widget>org.nuxeo.dev</widget>
        </row>
        <row>
          <widget>dbtemplate</widget>
        </row>
        <row>
          <widget>database_ajax_decorator</widget>
        </row>
        <row>
          <widget>chooseDirectoryType</widget>
        </row>
        <row>
          <widget>ldap_ajax_decorator</widget>
        </row>
      </rows>
      <widget name="url" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.url</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.url']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="product.name" type="text">
        <labels>
          <label mode="any">label.setup.org.nuxeo.ecm.product.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.ecm.product.name']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="product.version" type="text">
        <labels>
          <label mode="any">label.setup.org.nuxeo.ecm.product.version</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.ecm.product.version']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="bind.address" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.bind.address</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.bind.address']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="nuxeo.conf" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.conf</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.conf']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="data.dir" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.data.dir</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.data.dir']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="log.dir" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.log.dir</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.log.dir']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="org.nuxeo.dev" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.org.nuxeo.dev</label>
        </labels>
        <helpLabels>
          <label mode="any">label.setup.nuxeo.org.nuxeo.dev.help</label>
        </helpLabels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.dev']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/dev_mode_widget_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="dbtemplate" type="template">
        <labels>
          <label mode="any">label.setup.database.templates</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.dbtemplate']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_chooser_widget_template.xhtml
          </property>
          <property name="reRender">database_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="database_ajax_decorator" type="template">
        <handlingLabels>true</handlingLabels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_ajax_panel.xhtml
          </property>
          <property name="ajaxPanelId">database_ajaxPanel</property>
          <!-- use a 'rendered' property instead of playing with the
            subwidget mode otherwise proxy selection misbehaves after
            first non-default database
            selection -->
          <property name="rendered">
            #{value['nuxeo.dbtemplate']!='default' and value['nuxeo.dbtemplate']!='mongodb'}
          </property>
        </properties>
        <subWidgets>
          <widget name="database" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_database</property>
            </properties>
          </widget>
        </subWidgets>
      </widget>
      <widget name="chooseDirectoryType" type="template">
        <labels>
          <label mode="any">label.setup.directory.type</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{setupWizardAction.directoryType}</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_chooser_widget_template.xhtml
          </property>
          <property name="reRender">ldap_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="ldap_ajax_decorator" type="template">
        <handlingLabels>true</handlingLabels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_ajax_panel.xhtml
          </property>
          <property name="ajaxPanelId">ldap_ajaxPanel</property>
          <property name="rendered">
            #{setupWizardAction.directoryType != 'default'}
          </property>
        </properties>
        <subWidgets>
          <widget name="directories" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories</property>
            </properties>
          </widget>
          <widget name="directories_group" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories_group</property>
            </properties>
          </widget>
          <widget name="directories_extra" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories_extra</property>
            </properties>
          </widget>
        </subWidgets>
      </widget>

    </layout>

    <layout name="admin_setup_database">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.dataBase</property>
      </properties>
      <rows>
        <row>
          <widget>dbName</widget>
        </row>
        <row>
          <widget>dbUser</widget>
        </row>
        <row>
          <widget>dbPwd</widget>
        </row>
        <row>
          <widget>dbHost</widget>
        </row>
        <row>
          <widget>dbPort</widget>
        </row>
        <row>
          <widget>dbMinPoolSize</widget>
        </row>
        <row>
          <widget>dbMaxPoolSize</widget>
        </row>
        <row>
          <widget>vcsMinPoolSize</widget>
        </row>
        <row>
          <widget>vcsMaxPoolSize</widget>
        </row>
        <row>
          <widget>checkDatabaseParameters</widget>
        </row>
      </rows>
      <widget name="dbName" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.name']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbUser" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.user']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbPwd" type="secret">********<labels>
          <label mode="any">label.setup.nuxeo.db.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.password']</field>
        </fields>
      </widget>
      <widget name="dbHost" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.host']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbPort" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
        </properties>
      </widget>
      <widget name="dbMinPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.min-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.min-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="dbMaxPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.max-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.max-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="vcsMinPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.vcs.min-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.vcs.min-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="vcsMaxPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.vcs.max-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.vcs.max-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="checkDatabaseParameters" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_check_parameters_template.xhtml
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_directories">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.directories</property>
      </properties>
      <rows>
        <row>
          <widget>ldapStorage</widget>
        </row>
        <row>
          <widget>ldapUrl</widget>
          <!-- <widget>checkNetwork</widget> -->
        </row>
        <row>
          <widget>ldapBindDn</widget>
        </row>
        <row>
          <widget>ldapBindPassword</widget>
          <widget>checkAuth</widget>
        </row>
        <row>
          <widget>userLdapSearchBaseDn</widget>
        </row>
        <row>
          <widget>userLdapSearchClass</widget>
        </row>
        <row>
          <widget>userLdapSearchFilter</widget>
        </row>
        <row>
          <widget>userLdapSearchScope</widget>
        </row>
        <row>
          <widget>userLdapReadonly</widget>
        </row>
        <row>
          <widget>mappingUserRdn</widget>
        </row>
        <row>
          <widget>mappingUsername</widget>
        </row>
        <row>
          <widget>mappingPassword</widget>
        </row>
        <row>
          <widget>mappingFirstname</widget>
        </row>
        <row>
          <widget>mappingLastname</widget>
        </row>
        <row>
          <widget>mappingEmail</widget>
        </row>
        <row>
          <widget>mappingCompany</widget>
        </row>
      </rows>
      <widget name="ldapStorage" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.users.storage</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.group.storage']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ldap_storage_widget_template.xhtml
          </property>
          <property name="reRender">ldap_group_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="multiStorage" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.users.storage</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.group.storage']</field>
        </fields>
        <selectOptions>
          <option itemLabel="Multidirectory for users and groups" itemValue="multiUserGroup"/>
          <option itemLabel="Multidirectory for users and SQL groups" itemValue="multiUserSqlGroup"/>
          <option itemLabel="LDAP users and multidirectory for groups" itemValue="ldapUserMultiGroup"/>
        </selectOptions>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.directoryType == 'multi'}
          </property>
        </properties>
      </widget>
      <widget name="ldapUrl" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.url</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.url']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="ldapBindDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.binddn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.binddn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="ldapBindPassword" type="secret">********<labels>
          <label mode="any">label.setup.nuxeo.ldap.bindpassword</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.bindpassword']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="redisplay">true</property>
        </properties>
      </widget>
      <widget name="ldapRetries" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.retries</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.retries']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">2</property>
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchBaseDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchbasedn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchBaseDn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchClass" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchclass</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchClass']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchFilter" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchfilter</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchFilter']</field>
        </fields>
      </widget>
      <widget name="userLdapSearchScope" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchscope</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchScope']</field>
        </fields>
        <selectOptions>
          <option itemLabel="onelevel" itemValue="onelevel"/>
          <option itemLabel="subtree" itemValue="subtree"/>
        </selectOptions>
        <properties widgetMode="any">
          <property name="size">1</property>
        </properties>
      </widget>
      <widget name="userLdapReadonly" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.readonly</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.readonly']</field>
        </fields>
      </widget>
      <widget name="mappingUserRdn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.rdn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.rdn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingUsername" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.username']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingPassword" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.password']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingFirstname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.firstname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.firstname']</field>
        </fields>
      </widget>
      <widget name="mappingLastname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.lastname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.lastname']</field>
        </fields>
      </widget>
      <widget name="mappingEmail" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.email</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.email']</field>
        </fields>
      </widget>
      <widget name="mappingCompany" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.company</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.company']</field>
        </fields>
      </widget>
      <widget name="checkNetwork" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <widgetModes>
          <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
        </widgetModes>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_check_network_parameters_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="checkAuth" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <widgetModes>
          <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
        </widgetModes>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_check_auth_parameters_template.xhtml
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_directories_group">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="ajaxPanelId">ldap_group_ajaxPanel</property>
        <property name="rendered">
          #{setupWizardAction.needGroupConfiguration}
        </property>
      </properties>
      <rows>
        <row>
          <widget>groupLdapSearchBaseDn</widget>
        </row>
        <row>
          <widget>groupLdapSearchFilter</widget>
        </row>
        <row>
          <widget>groupLdapSearchScope</widget>
        </row>
        <row>
          <widget>groupLdapReadonly</widget>
        </row>
        <row>
          <widget>mappingGroupRdn</widget>
        </row>
        <row>
          <widget>mappingGroupname</widget>
        </row>
        <row>
          <widget>mappingGrouplabel</widget>
        </row>
        <row>
          <widget>mappingStaticMembers</widget>
        </row>
        <row>
          <widget>mappingDynamicMembers</widget>
        </row>
      </rows>
      <widget name="groupLdapSearchBaseDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchbasedn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchBaseDn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="groupLdapSearchFilter" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchfilter</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchFilter']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="groupLdapSearchScope" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchscope</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchScope']</field>
        </fields>
        <selectOptions>
          <option itemLabel="onelevel" itemValue="onelevel"/>
          <option itemLabel="subtree" itemValue="subtree"/>
        </selectOptions>
        <properties widgetMode="any">
          <property name="size">1</property>
        </properties>
      </widget>
      <widget name="groupLdapReadonly" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.readonly</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.readonly']</field>
        </fields>
      </widget>
      <widget name="mappingGroupRdn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.rdn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.rdn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingGroupname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.name']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingGrouplabel" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.label</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.label']</field>
        </fields>
      </widget>
      <widget name="mappingStaticMembers" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.static</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.members.staticAttributeId']</field>
        </fields>
      </widget>
      <widget name="mappingDynamicMembers" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.dynamic</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.members.dynamicAttributeId']</field>
        </fields>
      </widget>
    </layout>

    <layout name="admin_setup_directories_extra">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label"/>
      </properties>
      <rows>
        <row>
          <widget>defaultAdministrator</widget>
        </row>
        <row>
          <widget>defaultMembersGroup</widget>
        </row>
        <row>
          <widget>anonymousUser</widget>
        </row>
        <row>
          <widget>emergencyUser</widget>
        </row>
        <row>
          <widget>emergencyUsername</widget>
        </row>
        <row>
          <widget>emergencyPassword</widget>
        </row>
        <row>
          <widget>emergencyFirstname</widget>
        </row>
        <row>
          <widget>emergencyLastname</widget>
        </row>
      </rows>
      <widget name="defaultAdministrator" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.admin</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.defaultAdministratorId']</field>
        </fields>
      </widget>
      <widget name="defaultMembersGroup" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.membersGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.defaultMembersGroup']</field>
        </fields>
      </widget>
      <widget name="anonymousUser" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.anonymous.enable</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.anonymous.enable']</field>
        </fields>
      </widget>
      <widget name="emergencyUser" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.enable</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.enable']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
          </property>
          <property name="reRender">ldap_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="emergencyUsername" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.username']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyPassword" type="secret">********<labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.password']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="redisplay">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyFirstname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.firstname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.firstname']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyLastname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.lastname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.lastname']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_choose_proxy">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.httpProxy</property>
        <property name="ajaxPanelId">admin_choose_proxy_ajaxPanel</property>
      </properties>
      <rows>
        <row>
          <widget>chooseProxy</widget>
        </row>
        <row>
          <widget>proxy.host</widget>
        </row>
        <row>
          <widget>proxy.port</widget>
        </row>
        <row>
          <widget>proxy.login</widget>
        </row>
        <row>
          <widget>proxy.password</widget>
        </row>
      </rows>
      <widget name="chooseProxy" type="template">
        <labels>
          <label mode="any">label.setup.httpProxy.type</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{setupWizardAction.proxyType}</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/proxy_chooser_widget_template.xhtml
          </property>
          <property name="reRender">admin_choose_proxy_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="proxy.host" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.host']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <!-- use a 'rendered' property instead of playing with the
            subwidget mode otherwise smtp auth misbehaves after
            first non-default proxy type selection -->
          <property name="rendered">
            #{setupWizardAction.proxyType != 'none'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.port" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType != 'none'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.login" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.login</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.login']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType ==
            'authenticated'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.password" type="secret">********<labels>
          <label mode="any">label.setup.nuxeo.http.proxy.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.password']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType ==
            'authenticated'}
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_mail">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.email</property>
        <property name="ajaxPanelId">admin_setup_mail_ajaxPanel</property>
      </properties>
      <rows>
        <row>
          <widget>eMailSubjectPrefix</widget>
        </row>
        <row>
          <widget>mailservice.user</widget>
        </row>
        <row>
          <widget>mailservice.password</widget>
        </row>
        <row>
          <widget>mail.store.protocol</widget>
        </row>
        <row>
          <widget>mail.transport.protocol</widget>
        </row>
        <row>
          <widget>mail.store.host</widget>
        </row>
        <row>
          <widget>mail.store.port</widget>
        </row>
        <row>
          <widget>mail.store.user</widget>
        </row>
        <row>
          <widget>mail.store.password</widget>
        </row>
        <row>
          <widget>mail.debug</widget>
        </row>
        <row>
          <widget>mail.transport.host</widget>
        </row>
        <row>
          <widget>mail.transport.port</widget>
        </row>
        <row>
          <widget>mail.transport.auth</widget>
        </row>
        <row>
          <widget>mail.transport.user</widget>
        </row>
        <row>
          <widget>mail.transport.password</widget>
        </row>
        <row>
          <widget>mail.from</widget>
        </row>
        <row>
          <widget>mail.transport.usetls</widget>
        </row>
        <row>
          <widget>mail.user</widget>
        </row>
      </rows>
      <widget name="eMailSubjectPrefix" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.notification.eMailSubjectPrefix
          </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.notification.eMailSubjectPrefix']</field>
        </fields>
      </widget>
      <widget name="mailservice.user" type="text">
        <labels>
          <label mode="any">label.setup.mailservice.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mailservice.user']</field>
        </fields>
      </widget>
      <widget name="mailservice.password" type="secret">********<labels>
          <label mode="any">label.setup.mailservice.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mailservice.password']</field>
        </fields>
      </widget>
      <widget name="mail.store.protocol" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.protocol</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.protocol']</field>
        </fields>
      </widget>
      <widget name="mail.transport.protocol" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.protocol</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.protocol']</field>
        </fields>
      </widget>
      <widget name="mail.store.host" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.host']</field>
        </fields>
      </widget>
      <widget name="mail.store.port" type="int">
        <labels>
          <label mode="any">label.setup.mail.store.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.store.user" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.user']</field>
        </fields>
        <properties mode="edit">
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.store.password" type="secret">********<labels>
          <label mode="any">label.setup.mail.store.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.password']</field>
        </fields>
        <properties mode="edit">
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.debug" type="checkbox">
        <labels>
          <label mode="any">label.setup.mail.debug</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.debug']</field>
        </fields>
      </widget>
      <widget name="mail.transport.host" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.host']</field>
        </fields>
        <properties mode="edit">
        </properties>
      </widget>
      <widget name="mail.transport.port" type="int">
        <labels>
          <label mode="any">label.setup.mail.transport.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
        </properties>
      </widget>
      <widget name="mail.transport.auth" type="template">
        <labels>
          <label mode="any">label.setup.mail.transport.auth</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.auth']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
          </property>
          <property name="reRender">admin_setup_mail_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="mail.transport.user" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.user']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['mail.transport.auth'] == true}
          </property>
        </properties>
      </widget>
      <widget name="mail.transport.password" type="secret">********<labels>
          <label mode="any">label.setup.mail.transport.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.password']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['mail.transport.auth'] == true}
          </property>
        </properties>
      </widget>
      <widget name="mail.from" type="text">
        <labels>
          <label mode="any">label.setup.mail.from</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.from']</field>
        </fields>
      </widget>
      <widget name="mail.transport.usetls" type="checkbox">
        <labels>
          <label mode="any">label.setup.mail.transport.usetls</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.usetls']</field>
        </fields>
      </widget>
      <widget name="mail.user" type="text">
        <labels>
          <label mode="any">label.setup.mail.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.user']</field>
        </fields>
      </widget>
    </layout>

    <!-- placeholder layout for custom properties -->
    <layout name="admin_setup_custom_properties">
      <templates>
        <template mode="any">
          /incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.custom</property>
      </properties>
    </layout>

    <!-- permissions search -->
    <layout name="permissions_search_filter">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>username</widget>
        </row>
        <row>
          <widget>creator</widget>
        </row>
        <row>
          <widget>location</widget>
        </row>
        <row>
          <widget>permission</widget>
        </row>
        <row>
          <widget>date_range</widget>
        </row>
        <row>
          <widget>status</widget>
        </row>
        <row>
          <widget>aclName</widget>
        </row>
      </rows>
      <widget name="username" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.permissions.userGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_username</field>
        </fields>
      </widget>
      <widget name="creator" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.permissions.grantedBy</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_creator</field>
        </fields>
        <properties mode="any">
          <property name="userSuggestionSearchType">USER_TYPE</property>
        </properties>
      </widget>
      <widget name="location" type="multipleDocumentsSuggestion">
        <labels>
          <label mode="any">label.search.locationSearch</label>
        </labels>
        <fields>
          <field>rs:ecm_ancestorIds</field>
        </fields>
        <translated>true</translated>
        <properties mode="any">
          <property name="documentSuggestion_pageProviderName">
            permissions_search_folders
          </property>
        </properties>
      </widget>
      <widget name="permission" type="selectManyListbox">
        <labels>
          <label mode="any">label.permissions.right</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_permission</field>
        </fields>
        <selectOptions>
          <options itemLabel="#{item.label}" itemValue="#{item.value}" value="#{securityActions.getUserVisiblePermissionSelectItems('')}" var="item"/>
        </selectOptions>
      </widget>
      <widget name="date_range" type="datetimeRange">
        <labels>
          <label mode="any">label.permissions.timeFrame</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_begin</field>
          <field>rs:ace_end</field>
        </fields>
        <properties widgetMode="edit">
          <property name="styleClass">dataInputTextDate</property>
          <property name="format">#{nxu:basicDateAndTimeFormatter()}</property>
        </properties>
      </widget>
      <widget name="status" type="template">
        <labels>
          <label mode="any">label.permissions.ace.status</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{adminPermissionsActions.selectedACEStatus}</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /widgets/ace_status_widget.xhtml
          </property>
        </properties>
      </widget>
      <widget name="aclName" type="text">
        <labels>
          <label mode="any">label.permissions.search.aclName</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_acl_name</field>
        </fields>
      </widget>
    </layout>

    <layout name="permissions_purge_filter">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>username</widget>
        </row>
        <row>
          <widget>location</widget>
        </row>
      </rows>
      <widget name="username" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.permissions.userGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>rs:ace_username</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="location" type="multipleDocumentsSuggestion">
        <labels>
          <label mode="any">label.search.locationSearch</label>
        </labels>
        <fields>
          <field>rs:ecm_ancestorIds</field>
        </fields>
        <translated>true</translated>
        <properties mode="any">
          <property name="documentSuggestion_pageProviderName">
            permissions_search_folders
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="permissions_search_listing">
      <templates>
        <template mode="any">/layouts/layout_listing_ajax_template.xhtml
        </template>
        <template mode="csv">/layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">dc:title</property>
          </properties>
          <widget>document_title</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/principal</property>
          </properties>
          <widget>ace_username</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/permission</property>
          </properties>
          <widget>ace_permission</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/creator</property>
          </properties>
          <widget>ace_creator</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/begin</property>
          </properties>
          <widget>ace_begin</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/end</property>
          </properties>
          <widget>ace_end</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">ecm:acl/*1/status</property>
          </properties>
          <widget>ace_status</widget>
        </column>
      </columns>
      <widget name="document_title" type="listing_id_title_link">
        <labels>
          <label mode="any">label.dublincore.title</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:uuid"]</field>
          <field>#{navigationContext.currentServerLocation.name}</field>
          <field>data["dc:title"]</field>
        </fields>
      </widget>
      <widget name="ace_permission" type="text">
        <labels>
          <label mode="any">label.permissions.right</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{messages[securityActions.getLabel(layoutValue.data["ecm:acl/*1/permission"])]}</field>
        </fields>
      </widget>
      <widget name="ace_username" type="singleUserSuggestion">
        <labels>
          <label mode="any">label.permissions.userGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/principal"]</field>
        </fields>
      </widget>
      <widget name="ace_creator" type="text">
        <labels>
          <label mode="any">label.permissions.grantedBy</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/creator"]</field>
        </fields>
      </widget>
      <widget name="ace_begin" type="datetime">
        <labels>
          <label mode="any">label.permissions.from</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/begin"].time</field>
        </fields>
        <properties widgetMode="any">
          <property name="pattern">#{nxu:basicDateFormatter()}</property>
        </properties>
        <properties mode="csv">
          <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
          <property name="csv_forceType">date</property>
        </properties>
      </widget>
      <widget name="ace_end" type="datetime">
        <labels>
          <label mode="any">label.permissions.to</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/end"].time</field>
        </fields>
        <properties widgetMode="any">
          <property name="pattern">#{nxu:basicDateFormatter()}</property>
        </properties>
        <properties mode="csv">
          <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
          <property name="csv_forceType">date</property>
        </properties>
      </widget>
      <widget name="ace_status" type="template">
        <labels>
          <label mode="any">label.permissions.ace.status</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data["ecm:acl/*1/status"]</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /widgets/ace_status_widget.xhtml
          </property>
        </properties>
      </widget>
    </layout>
  </extension>